Method to detect cloned software

ABSTRACT

Method to detect cloned software being used on a client user unit. An initialization phase comprises: defining a tag value as being equal to an initial random value, opening a new record storing the tag value and introducing the tag value into the client user unit. An operating phase comprises: preparing a client message comprising the request and a value depending on the tag value; sending the client message to the server; and checking if the tag value of the client message is correct with respect to the stored tag value. If they do not match, the requested service is denied. If they do match, the method sends a server message to the user unit; updates the tag value with a new tag value; and stores the new tag value on the server and user unit.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation U.S. patent application Ser. No.13/988,292, filed May 17, 2013 which is a National Stage ofInternational Application No. PCT/IB2011/055083, filed Nov. 15, 2011,which, in turn, claims the benefit of U.S. Provisional Application No.61/415,363, filed Nov. 19, 2010. All of the foregoing application areincorporated by reference in their entireties.

FIELD OF THE INVENTION

The present invention relates to security measures implemented in thehardware of systems on chip built on integrated circuits used forexample in conditional access systems managing user rights for accessingmultimedia content. In particular, aging or reliable operating lifetimetime is controlled by hardware devices implemented in the system onchip.

TECHNICAL BACKGROUND

The reliability of semiconductor components decreases during operationaluse. In fact, they are exposed to variable operational constraints suchas temperature and voltages. These constraints cause aging effects whichare proportional to cumulated stress due to temperature and voltageduring operation and varying according to parts more or less involved ina system on chip.

One such aging effect is Hot Carrier Injection (HCI) resulting whencharge carriers become trapped within the gate oxide of CMOS(Complementary Metal Oxide Semiconductor) transistors. The trappedcharge carriers accumulate over time, creating a built-in charge withinthe gate oxide of the transistors. This trapped charge decreases thecarrier mobility across the channel of the transistors and alters thetransistors threshold voltage. The Hot Carrier Injection is aggravatedby increasing operating temperatures and voltage, and has a cumulativeeffect proportional to age.

Another aging effect is Positive Bias Temperature Instability (PBTI)affecting NMOS transistors or Negative Bias Temperature Instability(NBTI) affecting PMOS transistors caused by an electrochemical reactionthat involves the electric field, holes, silicon-hydrogen bonds, andtemperature. During operation, DC bias voltages generate interface trapsbetween the gate oxide and silicon substrate of a NMOS or PMOStransistor. These interface traps accumulate over time and have theeffect of shifting the threshold voltage and reducing drive current andthe speed of CMOS transistors.

The HCI and BTI effects may eventually join together and form aconductive path through a gate stack in a process known as TimeDependent Dielectric Breakdown (TDDB). For example the document entitled“On-Chip Circuits for Characterizing Transistor Aging Mechanisms inAdvanced CMOS Technologies” by John Patrick Keane, University ofMinnesota, April 2010, describes in detail the different CMOStransistors aging effects.

The speed degradation due to transistors aging may be directly measuredwith on-chip sensors, for example to optimize the circuit clock speed assuggested by recent publications and technology trends, cf. document“Transistor Aging”—IEEE Spectrum of July 2013. Measurement of gate agingmay be realized by observing the speed of ring oscillators on anyexisting electrical path inside a system on chip.

Accordingly, different internal components of an integrated circuit havevarying reliable lifetimes depending on localized environments subjectedto localized operational voltages and temperatures and on specificstress history of the circuit component. Components residing inhigh-use, high-stress environments will have shorter reliable lifetimes.

In the field of pay-TV, conditional access systems (CAS) or digitalrights management (DRM) schemes have as primary goal to warrant thatonly entitled customers may access media content. A high level ofsecurity is usually attained if the rights management at the client sideis based on dedicated hardware secure tokens (such as smart cards),which embed private secure multiple-time programmable memories such asflash storage.

One feature of CAS systems is to ensure that users actually pay forcontent they are viewing; a known technique is based on the purchase ofcredits or “coins” that may be spent over time. An electronic “wallet”containing the coins is usually made up of a file stored on a persistentmemory such as flash memory. The electronic wallet may be tied uniquelyto a given chip, which embeds a unique identifier (UID), so that userscannot share the credit. The chip UID may be permanently programmedon-chip, and this is generally done with a One-Time Programmable (OTP)memory or fuses.

Fuses may play a central role in design of a system configuration andsecurity. Their implementation in deep-submicron technologies isgenerally done with expensive analog semiconductor intellectual propertycore, (IP core). Moreover, the security of the implementation is left tothe IP core provider.

Aging monitoring techniques are described for example by documentsUS2005/134394A1 and US2014/097856A1.

Document US2005/134394A1 discloses a method and device to monitor orcharacterize amounts of transistor degradation, accumulated during thelifetime of a semiconductor device. Pairs of ring oscillators withsubstantially similar transistor networks or circuits are provided. Oneof the ring oscillators of the pairs is enabled when the integratedcircuits are powered on so that it is under stress during the lifetimeof the integrated circuit. In one embodiment, an integrated circuitincludes one or more functional blocks to perform one or more functionsand an integrated on-chip characterization circuit. The integratedon-chip characterization circuit includes a selectively enabled orreference ring oscillator to generate a reference oscillating signal, afree-running ring or pattern driven “aged” oscillator to generate afree-running oscillating signal, and a comparison circuit coupled to theselectively enabled ring oscillator and the aged ring oscillator, thecomparison circuit to determine a measure of transistor degradation.

The degradation level output provided by the characterization circuitmay be used internal or external to the integrated circuit.Additionally, the collection of data and the processing of it may beperformed automatically. The integrated circuits while in the field inuser systems may pass the transistor degradation information into acentral database so that it can be gathered together and evaluatedacross all integrated circuits in the field. This information can beused to evaluate transistor aging impact to special circuits, criticalspeed paths and maximum degradation, as well as to ascertain the risksand returns associated with using reliability guard bands for anintegrated circuit product.

The degradation level measured by the characterization circuit is usedfor statistic purposes and reliability evaluation without influencingfunctionalities of devices in the integrated circuit or the globalbehavior thereof.

Document US2014/097856A1 discloses a sensor for monitoring aging thatchanges performance of functional devices in an integrated circuit. Thesensor may create and characterize dynamic aging stress and/or providemonitoring of aging degradation of a circuit under dynamic voltagescaling and/or dynamic frequency scaling. The aging sensor including aring oscillator provides information indicating operational degradationof the integrated circuit due to aging. Parameters of a functionaldevice may be controlled by an aging compensation logic which monitorsaging information provided by the aging sensor, and determines, based onthe aging information, whether a parameter of the functional deviceshould be adjusted to compensate for age induced degradation inperformance of the functional device. For example, if the agingcompensation logic determines, based on aging information provided bythe aging sensor, that timing performance of the functional device, or aportion thereof, is becoming unreliable at a current voltage and/orfrequency, then the aging compensation logic may change a parameter ofthe functional device as for example increase the voltage powering thefunctional circuitry and/or adjust signal frequency or timing to improvetiming performance.

The role of the aging sensor is to measure a degradation level offunctional devices in an integrated circuit in order. The values such asfrequency and/or voltage variations are collected by the agingcompensation logic further configured to compensate degradation due tothe aging by acting on functional parameters in order to maintain thesame performances of the integrated circuit as before degradation of oneor more devices.

SUMMARY OF THE INVENTION

An aim of the aging control according to embodiments of the invention isto overcome the above mentioned drawbacks of the known concept of fusesimplemented in systems on chip requiring high security hardware andsoftware functionalities.

According to an embodiment, a method to control aging of a system onchip as stated in claim 1 is disclosed.

A system on chip configured to control aging of one or more devices asstated in claim 8 is also disclosed.

The aging may be controlled on devices such as crypto-processors, memorymanagement units, memories, communication interfaces, etc. by monitoringan oscillator circuit which is stressed by commands for varying hardwareparameters of the oscillator such as increasing DC supply voltage,setting AC bias voltage, or current in resistor increasing oscillatorcircuit temperature or a combination thereof. These hardware parametersrelated to operating conditions of the oscillator affect the signalfrequency which decreases proportionally to the operating time and tothe stress applied during a given time or periodically.

The oscillator signal frequency is compared with a reference frequencygenerated for example by an unstressed oscillator in order to determinea difference showing a decrease of the oscillator signal frequency. Thefrequency difference represents an operating age value of the at leastone device associated with the oscillator. If the operating age valueequals or exceeds a predetermined threshold age value, a stress statevalue is determined for example in form of a bit passing from a value 0to a value 1 or inversely.

The stress state value is monitored in order to determine an age of oneor more devices and modify the operating mode of the devices for exampleby disabling functionalities. In general, several oscillators eachassociated with one or more devices are stressed in different mannersand their individual stress state values may be stored in a memory inform of an array of values indicating a global aging state of the systemon chip.

The array of values may be in the form of a string of bits, a table oran array in which each element representing a stress state value isassociated with a device of the system on chip. According to anembodiment, a stress state value may be compared with a thresholdassociated with a device allowing determining if a device is stressedmore intensively in relation to other devices. In case, one or moredevices show a threshold exceeding, a global behavior of the system onchip may be modified as for example by restricting or disabling one ormore functions thereof.

Restricting one or more functions in at least one operating mode of thesystem on chip may result to at least one or a combination of effectscausing a loss of performances such as a processing speed decrease, alower operating memory capacity in relation to its nominal capacity,reduction of encryption/decryption capabilities, an earlier expirationdate of recorded user rights, etc. The restrictions may also limitsystem on chip functionalities to a basic operating mode in which a highsecurity level is no more required.

Disabling one or more functions in at least one operating mode of thesystem on chip may be induced by stopping operation of one or moredevices composing the system on chip. For example, a processor of adecryption device may be stopped or an access to decryption keys orother data related to security stored in a memory may be blocked.

The aging depends also on the operation mode of the system on chip whichdevices execute numerous functions going from a stand-by state withnegligible or low constraints on the semiconductor components until ahigh activity rate which leads to stress the oscillator intensively.

According to an embodiment, the aging controller may act on otherparameters of the electrical signals than the frequency of a ringoscillator, namely timing parameters such as transition time orpropagation time of signals produced by the devices of the system onchip. In fact, the aging which decreases oscillator frequency, increasessignal propagation time or transition time in relation with acorresponding reference signal.

BRIEF DESCRIPTION OF THE DRAWINGS

The following detailed description refers to the attached drawings inwhich:

FIG. 1 shows a diagram of a system on chip according to one embodimentof the invention configured to control aging of various devices bystressing ring oscillators associated thereto.

FIG. 2 shows an example of measured variations of a ring oscillatorfrequency depending on time and stress caused by over voltage whichaccelerates the aging.

FIG. 3 shows line charts of frequency variations in function of time fora stressed and an unstressed ring oscillator.

DETAILED DESCRIPTION

According to a preferred configuration, the aging controller is based onring oscillator RO circuits implemented in the system on chip SOC formeasuring the devices aging. A ring oscillator RO circuit comprises atleast one inverting element or inverter and a delay element consistingof a buffer, capacitance or an even number of inverters. A well knownconfiguration includes a chain of an odd number of CMOS invertersconnected in series where the output of the last inverter is fed back asinput of the first inverter forming thus a ring.

A real ring oscillator RO only requires power to operate; above acertain threshold voltage, oscillations begin spontaneously. To increasethe frequency of oscillation, two methods are commonly used. Firstly,the applied voltage may be increased; this increases both the frequencyof the oscillation and the current consumed. The maximum permissiblevoltage applied to the circuits limits the speed of a given oscillator.Secondly, a smaller number of inverters in the ring results in a higherfrequency of oscillation for a given power consumption. The fundamentalfrequency F_(osc) at a given supply voltage is calculated byF_(osc)=1/(N*T) where N represents the number of inverters in the ringand T the time delay for a single inverter.

As the effects of aging impact the switching speed of transistors byrendering them slower, a ring oscillator RO with 10 to 100 MOSFETtransistors will see its fundamental frequency slowing with time. Thevariation with time is thus directly proportional to number oftransistors respectively inverters included in the ring oscillator. Thevariation may be increased by stressing the ring oscillator RO circuitin different ways, such as applying a DC over-voltage, an AC voltagebias, a current increase in a resistor inducing a higher temperaturethan a normal operating temperature or a combination thereof. Theinteresting part is that the aging of transistors cannot be reversed.

The documents below describe aging causes and effects observed in CMOSprocess technology:

[1] “Transistor Aging”—IEEE Spectrum of July 2013(http://spectrum.ieee.org/semiconductors/processors/transistor-aging/0)

[2] Radic: A Standard-Cell-Based Sensor for On-Chip Aging and Flip-FlopMetastability Measurements, Xiaoxiao Wang et al., University ofConnecticut (www.engr.uconn.edu/˜tehrani/publications/itc-2012-1.pdf)

[3] On-Chip Circuits for Characterizing Transistor Aging Mechanisms inAdvanced CMOS Technologies” by John Patrick Keane, University ofMinnesota, April 2010(conservancy.umn.edu/bitstream/123382/1/Keane_umn_0130E_10992.pdf)

[4] ANALYSIS OF IMPACT OF TRANSISTOR AGING EFFECTS ON CLOCK SKEW INNANO-SCALE CMOS by Mandeep Singh Randhawa, San Francisco StateUniversity, California, May 2011(userwww.sfsu.edu/necrc/files/thesis/thesis_report_Mandeep.pdf)

[5] An On-Chip Test Clock Control Scheme for Circuit Aging Monitoring byHyunbean Yi, JOURNAL OF SEMICONDUCTOR TECHNOLOGY AND SCIENCE, VOL. 13,NO. 1, FEBRUARY, 2013(www.jsts.org/html/journal/journal_files/2013/02/Year2013Volume13_01_11.pdf)

There are several causes for gate aging including Hot Carrier Injection(HCI), Bias Temperature Instability (BTI) and Time Dependent DielectricBreakdown (TDDB) or Oxide Breakdown. All these phenomena contribute tothe variation of the threshold voltage of MOS transistors used in alarge scale in integrated circuits, and have the global effect ofgradually slowing down the gate speed over its lifetime. This slow-downmay be directly measured with on-chip sensors, for example to optimizethe circuit clock speed as suggested by document [1]. Measurement ofgate aging may be realized by observing the speed of ring oscillators.FIG. 2 taken from document [3] shows variations in percent (%) of ringoscillator frequency depending on stress time in seconds (s), and whenoscillators are stressed with over-voltage. These results verify thatBTI is at most weakly dependent on frequency, while HCI degrades withincreased switching activity. More switching leads to an increase incurrent driven through the channels of the device under test, meaningmore hot carriers are present. A decrease in the power law exponent (n)of HCI may be observed at higher frequencies, which is apparently due tothe quick saturation of degradation in this case. Both aging mechanismsBTI and HCI degrade with voltage and a decrease in NCI's power lawexponent (n) at lower voltages may be observed. This has been explainedby a possible decreasing contribution of broken Si—O (Silicon-Oxide)bonds at lower voltages, closer to real operating conditions. Thecircuit or gate aging measurement may thus be based on any existingelectrical path inside a complex system on chip.

The system on chip according to one embodiment of the inventionrepresented by the diagram of FIG. 1 aging of devices D1, D2, D3 iscontrolled by an aging controller AGC, each device includingsemiconductor circuit components. The aging controller AGC, generally inform of a hardware device operating with a dedicated software program,addresses commands SI1, SI2, SI3 to the associated ring oscillators RO,i.e. locally connected to each device D1, D2, D3, in order to stressthem. These commands act, during a predetermined time or within timeperiods, on the above mentioned hardware parameters in order toaccelerate aging of the ring oscillator corresponding to the aging ofthe associated device D1, D2, D3.

The system on chip SOC operates within operating modes depending onrequired functionalities. Most preferably in the example of a pay-TV settop box, the system on chip may be included in a security moduleinvolved in data encryption/decryption operations, user rights validitytime checking, credit and debit management for content viewing, etc.

The aging of selected devices is accelerated according to theirfunctions by increased stress application through a higher supplyvoltage in relation to the other devices. Particular commands may thusmanage the stress of the ring oscillators associated with the selecteddevices by increasing their activity rate, power supply voltage orcurrent values contributing also to increase operating temperature. In astand-by mode of the system on chip, some devices may still fullyoperate while others are switched off so that devices having, forexample, a sophisticated security function will expire faster than theones having only basic functions.

According to a preferred embodiment, each device D1, D2, D3 may beassociated with a specific oscillator circuit called hereafter ringoscillator fuse ROF. The term “fuse” means that the ring oscillator iscapable to modify or disable some features of a device when a givenoperating age value is reached.

The oscillator circuit, preferably in form of a ring oscillator composedby an odd number N of inverters IN₁ . . . IN_(N), generates a signalhaving a frequency F_(osc) during operating of the system on chip SOC.The ring oscillator operates as well as under normal or unstressedoperating conditions as under stressed conditions according to thecommands SI1, Si2, SI3 received from the aging controller AGC.

A first comparator CP1 compares a value of the F_(osc) with a referencefrequency value F_(ref) stored for example in a non-volatile set upmemory of the system on chip SOC during an initialization orpersonalization phase.

The reference frequency F_(ref) may be common to all devices D1, D2, D3or specific to each device or a predefined group of devices depending ontheir activity rate.

According to an embodiment, the reference frequency value F_(ref) maycorrespond to a frequency of a clock signal generated by a referencegenerator placed inside or outside the system on chip SOC.

When the oscillator signal frequency F_(osc) value differs with thereference frequency value F_(ref), the first comparator CP1 determines adifference value ΔF corresponding to an operating age of the concerneddevice D1. Each device D1, D2, D3 of the system on chip SOC may bepreferably associated with its own ring oscillator fuse device ROF toenable aging devices selectively. As each device D1, D2, D3 has itsspecific activity rate, aging effects measured by decrease of theoscillator signal frequency F_(osc), in relation to the referencefrequency F_(ref), are also device specific.

The operating age value at the output of the first comparator CP1 iscompared by a second comparator CP2 with a threshold operating age valueTA specific to the device to which the ring oscillator is associated.This threshold operating age value TA is initially stored in a set upmemory of the system on chip SOC in a similar way than the referencefrequency value F_(ref) according to the concerned embodiment.

Using two comparators has the advantage to allow specific comparisonsbetween different values of reference frequency as well as differentvalues of threshold age according to the functionalities of thedifferent devices composing the system on chip SOC.

If the operating age value is equal or greater than the thresholdoperating age value TA, the second comparator CP2 outputs for example abinary value 0 or 1 corresponding to a stress state value ST. In apreferred embodiment a stress state value bit set at 1 corresponds to areached operating age value, i.e. the operating age value represented byΔF is equal or higher than the threshold age value TA.

According to an embodiment, the frequency difference value ΔFcorresponding to an operating age value may be compared to more than onethreshold operating age value to provide differentiated stress statevalues. For example, depending on applied stress, the operating agevalue reaches a first threshold value TA1 indicated by a first stateST1, then after certain time and stress applied, the operating age valuereaches a second threshold value TA2 indicated by a second state ST2,and so on until to a final threshold operating age value TAn. Thegranularity, i.e. the number of threshold values and the intervalsbetween the threshold operating age values depends on the requiredinformation about aging progress in function of device activity rate andapplied stress. The operating mode of the concerned device may thus alsodepend on the different reached threshold age value. In this case, astress state values table may be established showing the differentthreshold age value and time period needed to reach them underpredefined stress conditions and device operating mode.

String of Bits

According to an embodiment, the stress state value associated with eachdevice may form a bit in a string of bits where for example each bit setat 1 corresponds to a reached or exceeded operating age value of saiddevice. In another embodiment, the stress state value may be encoded bya set of bits 0 and 1 and the string results from a concatenation of thesets representing each device stress state value.

Global Counter

A counter can be used to determine the general state of the chip. Beforea verification process, the counter is initialized. At each deviceverification, the counter is updated if the age value equals or exceedsa predetermined threshold age value. At the end of the process, thevalue of the counter represents the number of devices exceeding thethreshold showing a global state of the system on chip. Appropriateactions can be taken if the counter reaches a predefined threshold.

Device Counter

According to a further embodiment, a counter associated with each devicemay be updated when an operating age value is reached or exceeded. Anupdate of the counter means that the counter is incremented from a startvalue (in general set up to zero) or decremented from a predeterminedvalue set up during an initialization or personalization phase of thesystem on chip. In this case, each stress state value corresponds to thevalue of the counter which may be used to form a string of values byconcatenation as in the string of bits embodiment for example.

Dual Thresholds

According to a further embodiment, a threshold stress state value may beattributed to each device. During the comparison with the predeterminedthreshold age value, the difference between the operating age value andthe predetermined threshold age value is stored as a device state stressvalue. Once all devices are stressed, the array of values represents thebehavior of the chip. A further global aging value can be determined forexample by summing all stress state values to obtain a global stressstate value. The difference of this approach is to give a differentweight per device. In the bit approach (see above), each device has thesame weight and the global state value is determined according to thenumber of bits (i.e. device) exceeding the threshold. In the dualthreshold approach, in case that a stress state value exceeds thethreshold by a high difference, this difference only can trig themodification of the operating mode.

EXAMPLE

The table below shows an example with 3 devices D1, D2, D3 having eachan individual threshold age value DTA. The current stress state value STof a current device is compared with this threshold DTA to determine thethreshold exceeding value TE. In case that the current stress statevalue ST is below the threshold DTA, the result TE is set to zero. Inthe other cases, the result value TE can be further normalized inrespect with the device threshold age value DTA to take into account theabsolute variation of each threshold DTA. In the example, a thresholdexceeding rate TER in percent relatively to the device threshold agevalue DTA is calculated to allow stress intensity evaluation of eachdevice. The normalized threshold exceeding value TE therefore produces avalue (the threshold exceeding rate TER) which is in the same scale foreach device and can be then compared to each other.

The next step is to determine a global stress state value by summing allthreshold exceeding rates TER (or calculating an average of thethreshold exceeding rates TER). This global stress state value can bethen compared with a global threshold value to determine the globalstress state of the system on chip.

Device Current Threshold Threshold Devices/ threshold stress stateexceeding exceeding system on age value value value rate chip DTA ST TETER D1 20 15 0 0 D2 35 40 5 14% D3 80 120 40 50% Sum 64% (chip)

The binary values or the string of binary values representing the stressstate values of several devices or the global system on chip stressstate value may be stored in a secure memory M such as a non volatilememory, a random access memory or a register monitored by the agingcontroller AGC. These values may be used for cryptographic purposes toform a unique key to perform cryptographic computations that allow forexample the chip to acquire rights in a conditional access system.

The ring oscillator fuse ROF of one embodiment of the invention operatesaccording to three operating modes as illustrated by FIG. 3:

-   -   Off mode: the ring oscillator fuse ROF is inactive for example        when the power supply is off    -   Read mode: the ring oscillator fuse ROF operates under normal        conditions.    -   Stress mode: The ring oscillator fuse ROF operates under stress        conditions at high temperature or over-voltage for example.

According to FIG. 3, a nominal initial frequency f_(init) of theoscillator is measured and stored at manufacturing of the chip. Thefrequency decreases with the time from its initial value f_(init)according to slopes depending on the stress intensity and time appliedon the ring oscillator fuse ROF. The stress thus accelerates the agingas shown by dashed line segments in FIG. 3. After a given time, thefrequency of a stressed ring oscillator fuse ROF becomes significantlylower than the frequency of an unstressed ring oscillator fuse ROFrepresented by continuous line segments by showing a difference ΔF.

A system on chip may feature several thousand ring oscillator fuses ROFwhich may be used to determine a large number of data bits indicatingthe stress status of each devices associated with a ring oscillator fuseROF. Since ring oscillators may be implemented using standard librarycells (elementary CMOS inverters), their integration is seamless and maybe freely combined with other available cores.

According to the diagram of FIG. 1, each device D1, D2, D3 of the systemon chip SOC is provided by a ring oscillator fuse ROF1, ROF2, ROF3respectively which may be stressed individually according to thecharacteristics of each device D1, D2, D3. A global stress state valuemay thus be represented by a binary string of three bit with one bit foreach device. In the example, a binary string [100] means that the firstdevice D1 has reached the age set by the threshold TA on the secondcomparator CP2 while the ring oscillator fuses ROF of the other devicesD2, D3 have not been stressed sufficiently to reach the threshold agevalue. The first device D1 may be disabled by the aging controller AGCso that some functionalities of the system on chip may be considered asexpired.

The binary value of the string obtained after a certain operating timeand stress, corresponding to a global stress state value of the systemon chip, may be exploited by a management center or a client supportservice which may act on the behavior of the apparatus using the systemon chip. The global stress state may also be used to determine forexample devices stress levels for system or apparatus usage historyallowing defining necessity of a hardware and/or software update.

According to an embodiment, the aging controller AGC may control signaltiming parameters such as transition time or propagation time of signalsproduced by a device of the system on chip instead a frequency of asignal generated by an oscillator associated with the device. Thetransition time of a digital signal corresponds to the time taken by thesignal to pass from a low to a high state or vice versa. The propagationtime corresponds to the time taken by a digital signal to flow from afirst location in a circuit to a second location, this time beingmeasured as a time shift between the two locations. Beside the decreaseof an oscillator frequency, a consequence of the aging of a circuitincluding semiconductors is an increase of the signal transition time orthe signal propagation time in relation with a corresponding referencesignal.

In this case, the aging controller stresses devices, during apredetermined time or periodically, by increasing their activity ratewith a higher power supply voltage or current for example. Instead offrequency values, the aging controller compares signal timing measuredin a stressed device with corresponding timing of a reference signalproduced by a device not submitted to stress.

The method and the aging controller as described above are applicable inan efficient way in many kinds of apparatuses wherein expiries ofdevices or functionalities have to be managed selectively for securitypurposes.

According to an embodiment of the method of the invention, each devicecomprises an individual threshold age value DTA, the encoding of eachdevice stress state value comprises steps of:

-   -   comparing a current stress state value ST of each device with        the threshold age value DTA of said device,    -   if the current stress state value ST is lower than the threshold        age value DTA, setting a threshold exceeding value TE to zero,    -   if the current stress state value ST is equal or higher than the        threshold age value DTA, producing a threshold exceeding value        TE,    -   normalizing the threshold exceeding value TE in respect to the        threshold age value DTA to obtain a threshold exceeding rate TER        for each device,    -   determining a global stress state value by calculating a sum or        an average value of the threshold exceeding rates TER of each        device,    -   comparing the global stress state value with a global threshold        value to determine a global stress state of the system on chip,        and modifying the global behavior of said system on chip if the        global stress state value is equal or higher than the global        threshold value.

Although embodiments of the present disclosure have been described withreference to specific example embodiments, it will be evident thatvarious modifications and changes may be made to these embodimentswithout departing from the broader scope of these embodiments.Accordingly, the specification and drawings are to be regarded in anillustrative rather than a restrictive sense. The accompanying drawingsthat form a part hereof, show by way of illustration, and not oflimitation, specific embodiments in which the subject matter may bepracticed. The embodiments illustrated are described in sufficientdetail to enable those skilled in the art to practice the teachingsdisclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may bemade without departing from the scope of this disclosure. This DetailedDescription, therefore, is not to be taken in a limiting sense, and thescope of various embodiments is defined only by the appended claims,along with the full range of equivalents to which such claims areentitled.

Such embodiments of the inventive subject matter may be referred toherein, individually and/or collectively, by the term “invention” merelyfor convenience and without intending to voluntarily limit the scope ofthis application to any single inventive concept if more than one is infact disclosed. Thus, although specific embodiments have beenillustrated and described herein, it should be appreciated that anyarrangement calculated to achieve the same purpose may be substitutedfor the specific embodiments shown. This disclosure is intended to coverany and all adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the above description.

1. A method to detect a cloned software to be used on a client user unitcommunicating with a server for requesting said server to deliver mediacontent to be played on the client user unit, by sending a request forthe media content from the client user unit to the server, the serverbeing connected to a database comprising client records, each of theclient records comprising at least a tag value, the method comprising:an initialization phase comprising: defining the tag value as beingequal to an initial value; opening a new record storing the tag value;and introducing the tag value into the client user unit; and anoperating phase comprising: preparing, on the client user unit side, aclient message for the server comprising the request and the tag value;sending the client message from the client user unit to the server;performing an access condition test, on the server side, by checkingwhether the tag value of the client message is in the database; denyingthe request when the tag value of the client message is not in thedatabase, else: sending a server message to the client user unit, saidserver message comprising the requested media content; calculating, bothon the server side and on the client user unit side, a new tag valuederived from a last tag value and from at least a part of the clientmessage or a part of the server message; updating, both on the serverside and on the client user unit side, said tag value by replacing itwith said new tag value.
 2. The method of claim 1, wherein the part usedto calculate the new tag value is a timestamp.
 3. The method of claim 1,wherein the client message further comprises a unique identifierassigned to a client.
 4. The method of claim 1, wherein: theinitialization phase further comprising: defining a signature functionand a signature key derivation function for encrypting a digestresulting from the signature function; sharing the definition of thesignature function and the signature key derivation function between theclient user unit and the server; the operating phase further comprising:calculating an authentication code by applying the signature function tothe request and using the signature key for encrypting the digestresulting from the signature function, then preparing the client messagecomprising the authentication code and the request; and testing if theauthentication code received within the client message is equal to anauthentication code calculated by the server by applying the samesignature function to the request comprised in the client message andusing the same signature key for processing the digest; the signaturekey being preferably derived from the expected tag value that is storedin the server database.
 5. The method of claim 4, wherein: theinitialization phase further comprising: assigning a unique identifierto the client user unit and storing this identifier in the new record;sharing said unique identifier between the client user unit and theserver; the operating phase further comprising: amending the clientmessage by including the client unique identifier into the clientmessage.
 6. The method of claim 1, wherein the operating phase comprisesa resynchronization step amending the updating step by replacing the tagvalue by a new tag value equal to a new initial value, then sending thenew tag value to the client user unit.
 7. The method of claim 4, whereinthe signature key is either identical to the tag value of the clientuser unit or derived from the tag value.
 8. The method of claim 4,wherein the signature key is an unpredictable value.
 9. The method ofclaim 1, wherein the client message and/or the tag value sent betweenthe server and the client user unit are exchanged within a securecommunication channel.
 10. The method of claim 9, wherein the securecommunication is obtained by encryption of at least a part of mediacontent.
 11. The method of claims 10, wherein the tag value is used toderive at least an encryption key for encrypting the media content. 12.The method of claim 1, wherein a software update is sent by the serverto the client user unit.
 13. A method to detect a cloned software to beused on a client user unit communicating with a server for requestingsaid server to deliver media content to be played on the client userunit, by sending a request for the media content from the client userunit to the server, the server being connected to a database comprisingclient records, each of the client records comprising at least a tagvalue, the method comprising: an initialization phase comprising:defining the tag value as being equal to an initial value; opening a newrecord storing the tag value; and introducing the tag value into theclient user unit; and an operating phase comprising: preparing, on theclient user unit side and sending to the server, a client messagecomprising the request and the tag value; (1) checking at the serverwhether the tag value has to be updated: (2) when the tag value has tobe updated, updating the tag value on the server and on the client userunit by: (3) sending from the server to the client user unit an updatemessage including an update value; (4) calculating, both on the serverside and on the client user unit side, a new tag value derived from alast tag value and from said update value; (5) replacing the tag valuewith the new tag value; (6) storing the new tag value in the record ofthe database of the server and the client user unit; repeating steps 1-6checking whether the tag value has to be updated until a check counterhas reached a predetermined threshold; (7) when the tag value does nothave to be updated: (8) sending a server message to the client userunit, said server message comprising the requested media content; (9)calculating, both on the server side and on the client user unit side, anew tag value derived from a last tag value and from at least a part ofthe request comprised in said client message or a part of the mediacontent comprised in said server message; (10) replacing, both on theserver side and on the client user unit side, the tag value with the newtag value derived from the last tag value and from at least a part ofthe request comprised in said client message or a part of the mediacontent comprised in said server message
 14. The method of claim 13,wherein a software update is sent by the server to the client user unit.15. A method to detect a cloned software to be used on a client userunit communicating with a server for requesting said server to delivermedia content to be played on the client user unit, by sending a requestfor the media content from the client user unit to the server, theserver being connected to a database comprising client records, each ofthe client records comprising at least a tag value, the methodcomprising: an initialization phase comprising: defining the tag valueas being equal to an initial value; opening a new client record storingthe tag value; introducing the tag value into the client user unit;assigning a unique identifier to the client user unit and storing theunique identifier in the new client record; and sharing the uniqueidentifier between the client user unit and the server; and an operatingphase comprising: preparing, on the client user unit side, a clientmessage for the server comprising the request, the client uniqueidentifier and the tag value; checking whether the client uniqueidentifier included in the client message is already stored in one ofthe records of the database; denying the request when the client uniqueidentifier is not stored in one of the records of the database, else:incrementing by one unit a value of a client counter associated with theclient unique identifier in a client's record; checking when the clientcounter associated with the client unique identifier reaches apredetermined threshold; when the predetermined threshold is not met:storing the value of the incremented client counter in the client'srecord; assigning a new unique client identifier to the client bystoring, in a new record of the database, the new unique clientidentifier, a new tag value and a new client counter, which reaches saidpredetermined threshold; sending a server message to the user unit, saidserver message comprising the requested media content; calculating, bothon the server side and on the client user unit side, a new tag valuederived from a last tag value and from at least a part of the requestcomprised in said client message or a part of the media contentcomprised in said server message; updating, both on the server side andon the client user unit side, said tag value by replacing it with saidnew tag value derived from the last tag value and from the at least apart of the request comprised in said client message or a part of themedia content comprised in said server message
 16. The method of claim15, wherein a software update is sent by the server to the client userunit.